package cn.djb.day8;

/**
 * 假设把某股票的价格按照时间先后顺序存储在数组中，请问买卖该股票一次可能获得的最大利润是多少？
 */
class Solution_3 {

    /**
     * 动态规划
     *
     * 前i日最大利润=max(前(i−1)日最大利润,第i日价格−前i日最低价格)
     *
     * @param prices
     * @return
     */
    public int maxProfit(int[] prices) {
        if (prices.length == 0) return 0;

        int cost = prices[0], profit = 0;
        for (int price : prices) {
            cost = Math.min(cost, price);
            profit = Math.max(profit, price - cost);
        }

        return profit;

    }

}


